﻿//---------------------------------------------------------------------------------
// Copyright 2011 Microsoft Corporation
// Licensed under the Microsoft Public License (MS-PL) (the "License"); 
// You may not use this file except in compliance with the License. 
// You may obtain a copy of the License at http://www.opensource.org/licenses/ms-pl.html
// THIS CODE IS PROVIDED *AS IS* BASIS, WITHOUT WARRANTIES OR 
// CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, 
// INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR 
// CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 
// MERCHANTABLITY OR NON-INFRINGEMENT. 
// See the Microsoft Public License (MS-PL) for the specific language governing 
// permissions and limitations under the License.
//---------------------------------------------------------------------------------
using System;
using System.ComponentModel;

namespace Microsoft.Telco.WindowsLive
{
	public class Person : INotifyPropertyChanged
	{
		// Fields
		private string _Cid;
		private string _DeviceName;
		private string _Email;
		private string _Name;
		private Uri _Uri;

		// Events
		public event PropertyChangedEventHandler PropertyChanged;

		// Methods
		protected virtual void OnPropertyChanged(string property)
		{
			if (this.PropertyChanged != null)
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(property));
			}
		}

		// Properties
		public string Cid
		{
			get
			{
				return this._Cid;
			}
			internal set
			{
				this._Cid = value;
				this.OnPropertyChanged("Cid");
			}
		}

		public string DeviceName
		{
			get
			{
				return this._DeviceName;
			}
			set
			{
				this._DeviceName = value;
				this.OnPropertyChanged("DeviceName");
			}
		}

		public string Email
		{
			get
			{
				return this._Email;
			}
			set
			{
				this._Email = value;
				this.OnPropertyChanged("Email");
			}
		}

		public string Name
		{
			get
			{
				return this._Name;
			}
			set
			{
				this._Name = value;
				this.OnPropertyChanged("Name");
			}
		}

		public Uri Uri
		{
			get
			{
				return this._Uri;
			}
			set
			{
				this._Uri = value;
				this.OnPropertyChanged("Uri");
			}
		}
	}

}